package presentation.controller;

import logic.facade.StudentFacade;
import java.net.InetAddress;

/**
 *
 * @author Alexander
 */
public class ControlPanelRegister {

    public final static String ERRORPSWRD = "Los password no coinciden";
    public final static String OK = "Alumno registrado exitosamente";
    public final static String USEREXIST = "El nombre de usuario no está disponible";
    public final static String OK_MODIFICACION = "El Alumno ha sido modificado exitosamente";
    public final static String ERROR_EMPTY = "Ningun campo debe ser vacio";

    public String registrar(vo.StudentVO vo, String passwd2) {
        if (vo.getUsername().equals("") || vo.getPassword().equals("") || passwd2.equals("") || vo.getName().equals("") || vo.getLastName().equals("")) {
            return ERROR_EMPTY;
        } else {
            if (!vo.getPassword().equals(passwd2)) {
                return ERRORPSWRD;
            } else if (new StudentFacade().find(vo.getUsername()) != null) {
                return USEREXIST;
            } else {
                new StudentFacade().create(vo);
                return OK;
            }
        }
    }

    /**
     * Obtine desde el sistema la direccion ip del equipo
     *
     * @return La direccion IP de la maquina en formato
     * <code>String</code>
     */
    public String colocarIpUsuario() {
        String ip = "";

        try {
            InetAddress addr = InetAddress.getLocalHost();

            ip = addr.getHostAddress();
        } catch (Exception e) {
            e.printStackTrace();
        }

        return ip;
    }

    /**
     * Modifica un usuario especifico en la base de datos
     *
     * @param al Usuario que va a ser modificado
     * @param pass2 Confirmacion de la contrasenia para poder modificar el
     * usuario
     * @return Mensaje de informacion dependiendo del resultado de la operacion
     */
    public String modificarAlumno(vo.StudentVO al, String pass2) {
        if (!al.getPassword().equals(pass2)) {
            return ERRORPSWRD;
        } else {
            new StudentFacade().update(al);
            return OK_MODIFICACION;
        }
    }

    /**
     * Cambia la IP del usuario al momento que hace login
     *
     * @param al Usuario que va a ser modificado
     */
    public void modificarIp(vo.StudentVO al) {
        vo.StudentVO mod = (vo.StudentVO) new StudentFacade().find(al.getUsername());

        mod.setActiveUser(colocarIpUsuario() + ".true");
        new StudentFacade().update(mod);
    }
}
